//
//  UTLogin.h
//  UtouuOauthSDKTestDemo
//
//  Created by yons on 16/11/7.
//  Copyright © 2016年 高习泰. All rights reserved.
//

#import <Foundation/Foundation.h>

//typedef NS_OPTIONS(NSUInteger, UTLoginScene) {
//    UTLoginSceneTest                    = 0,// 测试 默认
//    UTLoginSceneDevelop                 = 1,// 开发
//    UTLoginSceneProduce                 = 2 // 生产
//    
//};



@interface UTLogin : NSObject

typedef void (^UTLoginCallBack) (id object, NSError * error);
//登录并获取 TGT
+(void)loginWithUserName:(NSString *)userName password:(NSString *)password deviceUDID:(NSString *)deviceUDID deviceType:(NSString *)deviceType deviceToken:(NSString *)deviceToken version:(NSString *)version appName:(NSString *)appName callBack:(UTLoginCallBack)loginCallBack;

//登录并获取 TGT
+(void)loginWithParams:(NSDictionary *)params callBack:(UTLoginCallBack)loginCallBack;
/*
 url:用于获取 TGT 的 url,当传入 nil 时会采取默认值,默认值为 @"https://passport.test.utouu.com/m1/tickets"
 params:参数字典,建议不要缺失
 @{
 "app_name" : @"bestkeep";
 "device_token" = "";
 "device_type" = 10;
 "device_udid" = "42E5A3E0-FE74-43BD-840D-5F15C8EE18B0";
 password = 111111;
 username = 18691009168;
 version = "2.0.2.7";
 }
 loginCallBack:回调,当成功时 responce 会返回值,失败时 error 会返回原因
 */

typedef void (^UTSTCallBack) (NSString * ST, NSError * error);
//根据 TGT 获取 ST
+(void)getSTWithTGT:(NSString *)tgt service:(NSString *)service callBack:(UTSTCallBack)STCallBack;
/*
 tgtUrl:用于获取 ST 的 tgt
 service:一个 url, 可能是需要进行 ST 验证的 url 地址,当传入 nil 时会采取默认值,默认值为 @"http://api.test.utouu.com/v2/user/data"
 loginCallBack:回调,当成功时 responce 会返回值,失败时 error 会返回原因
 */


typedef void (^UTUserCallBack) (id responce, id object, NSError * error);
//test: 获取用户信息
+(void)getUserInfoWithWithURL:(NSString *)url callBack:(UTUserCallBack)userCallBack;

//设置服务器请求环境(开发,测试,生产)
+(void)setScene:(NSInteger)scene;


// 获取请求头
+(NSDictionary *)getSTHeadDictionary:(NSDictionary *)header params:(NSDictionary *)dic_params strurl:(NSString*)url;

/*
 header：@｛@“st”：st｝
 dic_params：参数列表
 url：该请求的url
 返回：整个请求头字典，包含Sign
 */

/*
 注意事项:
 1,如果遇到崩溃的问题,请检查 info.plist 中是否设置了 http 请求的权限
 若未设置,将以下代码加入 info.plist 中
 <key>NSAppTransportSecurity</key>
	<dict>
 <key>NSAllowsArbitraryLoads</key>
 <true/>
	</dict>
 2,如果有其他不明错误,失败或崩溃,烦请记录出现问题时的参数及使用机型,以便排查
 
 */

@end
